﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Anke.SHManage.Utility
{
    public class CommonToken
    {
        public static string SecretKey = "Anke System Key";//这个服务端加密秘钥 属于私钥
        //public static int TokenExpireTime = AppConfig.GetConfigInt("TokenExpireTime"); //外联系统统一登录Token码到期超时时间，单位:分钟 add2021-09-15 plq

        //public static string GetToken(TokenInfo M) //相当于生成Token 
        //{
        //    var jwtcreated =
        //       Math.Round((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds + 5);
        //    var jwtcreatedOver =
        //        // Math.Round((DateTime.UtcNow.AddSeconds(20) - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds + 5);//TOKEN声明周期二小时
        //       Math.Round((DateTime.UtcNow.AddMinutes(TokenExpireTime) - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds + 5);//TOKEN声明周期：10分钟有效
        //    var payload = new Dictionary<string, dynamic>
        //        {
        //            {"iss", M.iss},//非必须。issuer 请求实体，可以是发起请求的用户的信息，也可是jwt的签发者。
        //            {"iat", jwtcreated},//非必须。issued at。 token创建时间，unix时间戳格式
        //            {"exp", jwtcreatedOver},//非必须。expire 指定token的生命周期。unix时间戳格式
        //            {"aud", M.aud},//非必须。接收该JWT的一方。
        //            {"sub", M.sub},//非必须。该JWT所面向的用户
        //            {"jti", M.jti},//非必须。JWT ID。针对当前token的唯一标识
        //            //{"UserId", M.UserId},//自定义字段 用于存放当前登录人账户信息
        //            {"UserName", M.UserName},//自定义字段 用于存放当前登录人账户信息
        //            {"WorkCode", M.WorkCode},//自定义字段 用于存放当前登录人账户信息
        //            {"LoginName", M.LoginName},//自定义字段 用于存放当前登录人账户信息
        //            {"UserPwd", M.UserPwd},//自定义字段 用于存放当前登录人登录密码信息
              
         
        //        };
        //    return JWT.JsonWebToken.Encode(payload, SecretKey,
        //       JWT.JwtHashAlgorithm.HS256);
        //}
    }

    public class TokenInfo
    {
        public TokenInfo()
        {
            iss = "珠海市安克电子技术有限公司";
            aud = "unknow";
            sub = "上海市医疗急救中心";
            jti = DateTime.Now.ToString("yyyyMMddHHmmss");
            //UserId = UserOperateContext.Current.Session_UsrInfo.BianMa;
            UserName = "";
            WorkCode = "";
            LoginName = "";
            UserPwd = "";
        }

        //
        public string iss { get; set; }
        public string aud { get; set; }
        public string sub { get; set; }
        public string jti { get; set; }
        //public string UserId { get; set; }
        public string UserName { get; set; }
        public string WorkCode { get; set; }
        public string LoginName { get; set; }
        public string UserPwd { get; set; }

    }
}
